<?php


class DbTable_ProdutoMercado extends Zend_Db_Table_Abstract
{
    protected $_name = 't_produto_mercado';
    protected $_rowClass = 'ProdutoMercado';
    protected $_primary = 'id_produto_mercado';
    
    protected $_dependentTables = array('DbTable_ProdutoListaMercado', 'DbTable_ColaboracaoProduto');
    
    protected $_referenceMap    = array(
        	'DbTable_Produto' => array(
	            'columns'           => array('id_produto'), //FK
	            'refTableClass'     => 'DbTable_Produto',
	            'refColumns'        => array('id_produto')),
                'DbTable_Mercado' => array(
	            'columns'           => array('id_mercado'), //FK
	            'refTableClass'     => 'DbTable_Mercado',
	            'refColumns'        => array('id_mercado'))
	);
    
    
    public static function buscarProdutoMercado($idProduto, $idMercado){
    	$tProdutoMercado = new DbTable_ProdutoMercado();
    	return $tProdutoMercado->fetchAll(array("id_produto = {$idProduto}", "id_mercado = {$idMercado}"))->current();
    }
    
    
    public static function buscarProdutoMercadoLike($nomeProduto, $nomeMercado){
        $tProduto = new DbTable_Produto();
        $tMercado = new DbTable_Mercado();
        $produtos = $tProduto->fetchAll(array("nm_produto like '%{$nomeProduto}%' and st_produto = '" . TipoSituacaoProduto::NA_ESTANTE . "'"));
        $mercados = $tMercado->fetchAll(array("nm_mercado like '%{$nomeMercado}%' and st_mercado = '" . TipoBloqueio::DESBLOQUEADO . "'" ));
        
        $where = array();              
        
        $idsProduto = array();
        $idsMercado = array();
        foreach ($produtos as $produto) array_push($idsProduto, $produto->id_produto);
        foreach ($mercados as $mercado) array_push($idsMercado, $mercado->id_mercado);
        
        $tProdutoMercado = new DbTable_ProdutoMercado();
        
        if ($idsProduto != array()) $where['id_produto in (?)'] = $idsProduto;
        else throw new Exception (null, TipoException::PRODUTO_INEXISTENTE);
        
        if ($idsMercado != array()) $where['id_mercado in (?)'] = $idsMercado;
        
    	return $tProdutoMercado->fetchAll($where);
    }
    
    
    public static function getNomeProduto($id){
        $tProdutoMercado = new DbTable_ProdutoMercado();
    	$produtoMercado = $tProdutoMercado->fetchAll(array("id_produto_mercado = {$id}"))->current();
        
        return $produtoMercado->findParentRow('DbTable_Produto');
    }
    
    
    public static function getProdutoMercado($id){
        $tProdutoMercado = new DbTable_ProdutoMercado();
        return $tProdutoMercado->find($id)->current();
    }    
    
    
    public static function getMercado($id){
        $tProdutoMercado = new DbTable_ProdutoMercado();
    	$produtoMercado = $tProdutoMercado->fetchAll(array("id_produto_mercado = {$id}"))->current();
        
        return $produtoMercado->findParentRow('DbTable_Mercado');
    }
    
}